home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1997-01-29 | 10.9 KB | 357 lines |
- 10 'SNGLWIRE 26 MAY 95 rev. 29 SEP 96
- 20 IF EX$=""THEN EX$="EXIT"
- 30 CLS:KEY OFF
- 40 COLOR 7,0,1
- 50 UL$=STRING$(80,205)
- 60 U$="#,###.#"
- 70 PI=3.14159
- 80 DIM AWG(40) 'AWG sizes
- 90 DIM CF(11,2) 'centre frequency of each band
- 100 '
- 110 '.....load centre frequencies
- 120 DATA 1.8,1.9,3.75,7.15,10.125,14.175,18.118,21.225,24.94,28.85,29.7
- 130 FOR Z=1 TO 11:READ CF(Z,1):NEXT Z
- 140 '
- 150 '.....load AWG sizes
- 160 K=(0.46/0.005)^(1/39) 'increment multiplier
- 170 FOR Z=1 TO 40
- 180 N=Z+3
- 190 AWG(Z)=0.46/K^N
- 200 NEXT Z
- 210 '
- 220 '.....start
- 230 CLS:Y=0
- 240 COLOR 15,2
- 250 PRINT " SINGLE WIRE ANTENNA SYSTEM";TAB(57);"by George Murphy VE3ERP ";
- 260 COLOR 1,0:PRINT STRING$(80,223);
- 270 COLOR 7,0
- 280 '
- 290 '.....preface
- 300 OPEN"I",1,"\data\docfiles\antenna.doc"
- 310 IF EOF(1)THEN 330
- 320 INPUT#1,NOTE$:PRINT " ";NOTE$:GOTO 310
- 330 CLOSE
- 340 PRINT UL$;
- 350 GOSUB 3080 'further notes
- 360 COLOR 15,1
- 370 LOCATE 25,22:PRINT " Press 1 to continue or 0 to EXIT.....";
- 380 COLOR 7,0
- 390 Z$=INKEY$:IF Z$=""THEN 390
- 400 IF Z$="0"THEN CLS:RUN EX$
- 410 IF Z$="1"THEN 430
- 420 GOTO 390
- 430 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 440 GOTO 510
- 450 '
- 460 '.....format input line
- 470 USIN$="####.###":LOCATE CSRLIN-1:PRINT SPC(7);
- 480 LOCATE CSRLIN,47:PRINT SPC(7);USING USIN$;Z;
- 490 RETURN
- 500 '
- 510 '.....initial inputs
- 520 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 530 INPUT " ENTER: LOWEST operating frequency.............(MHz)";LF
- 540 Z=LF:GOSUB 460:PRINT " MHz (";
- 550 PRINT CINT(300/LF*10)/10;"m.)"
- 560 INPUT " ENTER: HIGHEST operating frequency.............(MHz)";HF
- 570 Z=HF:GOSUB 460:PRINT " MHz (";
- 580 PRINT CINT(300/HF*10)/10;"m.)"
- 590 PRINT UL$;
- 600 '
- 610 T=18
- 620 PRINT TAB(T);"Z - 50 - coaxial transmission line from rig"
- 630 PRINT TAB(T);"C1, C2 - Transmatch variable tuning capacitors"
- 640 PRINT TAB(T);"L1 - Transmatch variable inductor or tapped coil"
- 650 PRINT TAB(T);"A1 - Single wire feedline to antenna"
- 660 PRINT TAB(T);"A2 - End-fed single wire horizontal antenna"
- 670 PRINT UL$;
- 680 LN=CSRLIN-1
- 690 GOSUB 2640 'print diagrams
- 700 '
- 710 F=HF:N=1:GOSUB 2410 'calculate values at highest frequency
- 720 F=LF:N=2:GOSUB 2410 'calculate values at lowest frequency
- 730 GOSUB 2530 'print component values
- 740 GOSUB 3440 'screen dump option
- 750 '
- 760 '.....page 2
- 770 CLS
- 780 PRINT
- 790 PRINT TAB(20);"TYPICAL SETTINGS FOR ALL AMATEUR HF BANDS"
- 800 PRINT TAB(19);STRING$(43,205)
- 810 PRINT TAB(14);"CALL FIG.1";TAB(34);"CALL FIG.2";TAB(54);"CALL FIG.3"
- 820 PRINT TAB(14);"CALL C1 pF";TAB(26);"L1 >H";TAB(34);"CALL";
- 830 PRINT TAB(39);"C1 pF";TAB(46);"L1 >H";TAB(54);"CALL";
- 840 PRINT TAB(59);"C1 pF";TAB(66);"C2 pF";TAB(73);"L1 >H"
- 850 PRINT TAB(14);"CALL SOUNDSOUNDSOUNDSOUNDSOUND SOUNDSOUNDSOUNDSOUNDSOUND";TAB(34);"CALL";
- 860 PRINT TAB(39);"SOUNDSOUNDSOUNDSOUNDSOUND SOUNDSOUNDSOUNDSOUNDSOUND";TAB(54);"CALL";
- 870 PRINT TAB(59);"SOUNDSOUNDSOUNDSOUNDSOUND SOUNDSOUNDSOUNDSOUNDSOUND SOUNDSOUNDSOUNDSOUNDSOUND"
- 880 '
- 890 '.....calculate component values for each band
- 900 N=3
- 910 FOR Y=1 TO 11
- 920 F=CF(Y,1)
- 930 GOSUB 2410 'calculate component values
- 940 GOSUB 2290 'print component values
- 950 NEXT Y
- 960 GOSUB 3440
- 970 '
- 980 '.....page 3
- 990 CLS:PRINT
- 1000 MG=7:PRINT TAB(MG);
- 1010 PRINT"The computer can help you design a multi-band tapped coil for Fig.3."
- 1020 PRINT TAB(MG);
- 1030 PRINT "Being what it is, it may locate two or more taps somewhere on the"
- 1040 PRINT TAB(MG);
- 1050 PRINT "same turn of the coil. A computer is very accurate, but it can also"
- 1060 PRINT TAB(MG);
- 1070 PRINT "be pretty impractical. Wherever it locates taps less than a turn"
- 1080 PRINT TAB(MG);
- 1090 PRINT "or two apart, just make a single tap somewhere between them. The"
- 1100 PRINT TAB(MG);
- 1110 PRINT "variable capacitors will hardly notice the differnce!"
- 1120 COLOR 15,1:LOCATE 12,8
- 1130 PRINT " Do you want to design a multi-band tapped coil for Fig.3? (y/n) "
- 1140 COLOR 7,0
- 1150 Z$=INKEY$:IF Z$=""THEN 1150
- 1160 IF Z$="N"OR Z$="n"THEN 3410
- 1170 IF Z$="Y"OR Z$="y"THEN 1200
- 1180 GOTO 1150
- 1190 '
- 1200 '.....design coil
- 1210 CLS
- 1220 PRINT " Press number in < > to choose standard units of measure:"
- 1230 PRINT UL$;
- 1240 PRINT " < 1 > Metric"
- 1250 PRINT " < 2 > U.S.A./Imperial"
- 1260 Z$=INKEY$
- 1270 IF Z$="1"THEN UM=25.4:UM$="mm.":GOTO 1300
- 1280 IF Z$="2"THEN UM=1:UM$="in.":GOTO 1300
- 1290 GOTO 1260
- 1300 PRINT UL$;
- 1310 '.....input wire size
- 1320 PRINT " ENTER: Coil Wire Size -";
- 1330 PRINT " either AWG# (10 to 40) or diameter (";UM$;") ";
- 1340 INPUT WS
- 1350 IF WS<10 THEN W=WS/UM ELSE W=AWG(WS):W$="("+STR$(WS)+" AWG )"
- 1360 '.....compute coil diameter
- 1370 CLS
- 1380 D=0.1 'initial diameter
- 1390 L=0.4*D 'minimum length/diameter ratio
- 1400 U=CF(1,1) 'minimum inductance
- 1410 N=SQR(U*(18*D+40*L))/D 'number of turns @ minimum L/D ratio
- 1420 IF (N*2*W)>L THEN D=D+0.01:GOTO 1390 'where w=wire diameter
- 1430 OD=(D-W)*UM
- 1440 PRINT
- 1450 COLOR 0,7
- 1460 PRINT " COIL FORM O.D. SHOULD BE AS CLOSE TO";OD;UM$;" AS POSSIBLE."
- 1470 COLOR 7,0
- 1480 PRINT
- 1490 PRINT " Diameters much larger or smaller than this may produce";
- 1500 PRINT " unpredictable results,"
- 1510 PRINT " especially at the high and low ends of the HF frequency spectrum."
- 1520 PRINT
- 1530 PRINT " ENTER: Coil Form Diameter.........(";UM$;")";:INPUT Z
- 1540 FD=Z/UM 'diameter of coil form
- 1550 CLS
- 1560 PRINT TAB(26);"ALL-BAND TAPPED COIL FOR FIG.3"
- 1570 PRINT UL$;
- 1580 U$="#####.###"
- 1590 PRINT " Coil FORM diameter..................";USING U$;FD*UM;:PRINT " ";UM$
- 1600 PRINT " Coil WIRE diameter..................";USING U$;W*UM;:PRINT " ";UM$;
- 1610 PRINT W$
- 1620 D=FD+W
- 1630 PRINT " COIL diameter.......................";USING U$;D*UM;:PRINT " ";UM$
- 1640 LOCATE 11
- 1650 PRINT UL$;
- 1660 PRINT " BAND";TAB(14);"FREQ.";TAB(27);">H";TAB(33);"TURNS &";
- 1670 PRINT TAB(41);"DISTANCE FROM INPUT END FOR EACH TAP"
- 1680 PRINT UL$;
- 1690 COLOR 0,7
- 1700 LOCATE CSRLIN-1,21:PRINT " ( L/D = Tap Length-to-Diameter ratio ) "
- 1710 COLOR 7,0
- 1720 '
- 1730 J=12 'set counter
- 1740 N=0 'set number of turns to 0
- 1750 FLAG=0 'set FLAG
- 1760 GOSUB 2140:PRINT "DEFDBL BAND EDGE DEFDBL (L/D =";USING"##.##";LG/D;:PRINT ":1)"
- 1770 IF LG/D<0.4 THEN FLAG=1
- 1780 GOSUB 2140:PRINT "SOUNDCOLOR DEFDBL DEFDBL DEFDBL (L/D =";USING"##.##";LG/D;:PRINT ":1)"
- 1790 GOSUB 2140:PRINT " <0xB4!> DEFDBL DEFDBL DEFDBL (L/D =";USING"##.##";LG/D;:PRINT ":1)"
- 1800 GOSUB 2140:PRINT " <0xB4!> DEFDBL DEFDBL DEFDBL (L/D =";USING"##.##";LG/D;:PRINT ":1)"
- 1810 GOSUB 2140:PRINT " <0xB4!> DEFDBL DEFDBL DEFDBL (L/D =";USING"##.##";LG/D;:PRINT ":1)"
- 1820 GOSUB 2140:PRINT " TAPS DEFDBL DEFDBL (L/D =";USING"##.##";LG/D;:PRINT ":1)"
- 1830 GOSUB 2140:PRINT " <0xB4!> DEFDBL DEFDBL DEFDBL (L/D =";USING"##.##";LG/D;:PRINT ":1)"
- 1840 GOSUB 2140:PRINT " <0xB4!> DEFDBL DEFDBL DEFDBL (L/D =";USING"##.##";LG/D;:PRINT ":1)"
- 1850 GOSUB 2140:PRINT " <0xB4!> DEFDBL DEFDBL DEFDBL (L/D =";USING"##.##";LG/D;:PRINT ":1)"
- 1860 GOSUB 2140:PRINT "SOUND' DEFDBL DEFDBL DEFDBL (L/D =";USING"##.##";LG/D;:PRINT ":1)"
- 1870 GOSUB 2140:PRINT "DEFDBL BAND EDGE DEFDBL (L/D =";USING"##.##";LG/D;:PRINT ":1)";
- 1880 J=0
- 1890 NN=INT(N)+1 'number of turns
- 1900 LG=NN*2*W*UM 'length of coil
- 1910 AMT=INT(PI*D*NN)+1 'amount of wire
- 1920 TU=D^2*NN^2/(18*D+40*LG)*UM
- 1930 LOCATE 5
- 1940 PRINT " Number of turns.....................";USING "#####";NN
- 1950 PRINT " Turn spacing........................";USING "#####.###";2*W*UM;
- 1960 PRINT " ";UM$;" c.c. (2 x wire diameter)"
- 1970 PRINT " Coil length.........................";USING "#####.##";LG;
- 1980 PRINT " ";UM$
- 1990 PRINT " Inductance of entire coil...........";USING "#####.##";TU;
- 2000 PRINT " >H"
- 2010 PRINT " Amount of wire required.............";USING "#####";AMT*UM;
- 2020 PRINT " ";UM$;" plus end leads (if any)"
- 2030 COLOR 15,4
- 2040 IF FLAG<>1 THEN 2090
- 2050 LOCATE 16,52:PRINT " Length/Diameter ratio (L/D) "
- 2060 LOCATE 17,52:PRINT " must not be less than 0.4:1 "
- 2070 LOCATE 21,52:PRINT " Run program again and select"
- 2080 LOCATE 22,52:PRINT " a smaller coil form diameter"
- 2090 COLOR 7,0:GOTO 3390 'end
- 2100 END
- 2110 '
- 2120 PRINT '************ sub-routines ************
- 2130 '
- 2140 '.....calculate coil taps
- 2150 J=J-1
- 2160 U=CF(J,2) 'required inductance at tap
- 2170 IF N=0 THEN N=1 'initial number of turns
- 2180 L=N*2*W
- 2190 UH=(D^2*N^2)/(18*D+40*L)
- 2200 IF UH<U THEN N=N+0.1:GOTO 2180
- 2210 PRINT USING "####.#";300/CF(J,1);:PRINT " m.";
- 2220 PRINT USING "####.###";CF(J,1);:PRINT " MHz.";
- 2230 PRINT USING "####.#";U;:PRINT " >H";
- 2240 PRINT USING "####.#";N;
- 2250 LG=N*W*2
- 2260 PRINT USING "#####.##";LG*UM;:PRINT " ";UM$;
- 2270 RETURN
- 2280 '
- 2290 '.....print component values for each band
- 2300 PRINT USING "###.###";F;:PRINT " MHz CALL ";
- 2310 PRINT USING "#######";C1A(N);
- 2320 PRINT USING "#####.#";L1A(N);
- 2330 PRINT TAB(31);" CALL";
- 2340 PRINT TAB(37);USING "#######";C1B(N);
- 2350 PRINT USING "#####.#";L1B(N);
- 2360 PRINT TAB(54);"CALL";
- 2370 PRINT TAB(57);USING "#######";C1C(N);C2C(N);
- 2380 PRINT USING "#####.#";L1C(N)
- 2390 RETURN
- 2400 '
- 2410 '.....calculate
- 2420 C1A=1/(2*PI*F*225)*10^6: C1A(N)=INT(C1A)
- 2430 L1A=480/(2*PI*F): L1A(N)=INT(L1A*10)/10
- 2440 '
- 2450 C1B=1/(2*PI*F*480)*10^6: C1B(N)=INT(C1B)
- 2460 L1B=480/(2*PI*F): L1B(N)=INT(L1B*10)/10
- 2470 '
- 2480 C1C=1/(2*PI*F*225)*10^6: C1C(N)=INT(C1C)
- 2490 C2C=1/(2*PI*F*300)*10^6: C2C(N)=INT(C2C)
- 2500 L1C=400/(2*PI*F): L1C(N)=INT(L1C*10)/10:CF(Y,2)=L1C
- 2510 RETURN
- 2520 '
- 2530 '.....print component values
- 2540 B=27:C=54
- 2550 PRINT " C1 =";C1A(1);"-";C1A(2);"pF";
- 2560 PRINT TAB(B);"CALL C1 =";C1B(1);"-";C1B(2);"pF";
- 2570 PRINT TAB(C);"CALL C1 =";C1C(1);"-";C1C(2);"pF"
- 2580 PRINT TAB(B);"CALL";TAB(C);"CALL C2 =";C2C(1);"-";C2C(2);"pF"
- 2590 PRINT " L1 =";L1A(1);"-";L1A(2);">H";
- 2600 PRINT TAB(B);"CALL L1 =";L1B(1);"-";L1B(2);">H";
- 2610 PRINT TAB(C);"CALL L1 =";L1C(1);"-";L1C(2);">H";
- 2620 RETURN
- 2630 '
- 2640 '.....diagrams
- 2650 LOCATE LN,27:PRINT "FN":LOCATE LN,54:PRINT "FN"
- 2660 CO=1
- 2670 LOCATE LN+ 1,CO:PRINT " A1+A2= DEFSTR wavelength or "
- 2680 LOCATE LN+ 2,CO:PRINT " odd multiple "
- 2690 COLOR 0,7
- 2700 LOCATE LN+ 3,CO:PRINT " FIG.1 "
- 2710 LOCATE LN+ 4,CO:PRINT " /BSAVESOUNDSOUNDSOUNDA2SOUNDSOUNDSOUNDSOUNDSOUND/ "
- 2720 LOCATE LN+ 5,CO:PRINT " L1 A1 "
- 2730 LOCATE LN+ 6,CO:PRINT " ZVARPTRSOUNDSOUNDBSAVESOUNDSOUNDORORORSOUNDSOUND'DEFSNG- Low-Z "
- 2740 LOCATE LN+ 7,CO:PRINT "THENFNLOAD THENINSTRTHEN C1 "
- 2750 LOCATE LN+ 8,CO:PRINT " CLSSOUNDSOUNDSOUND<0xB4!> "
- 2760 LOCATE LN+ 9,CO:PRINT " \\MOTOR\\earth ground "
- 2770 COLOR 7,0
- 2780 '
- 2790 CO=27
- 2800 LOCATE LN+ 1,CO:PRINT "CALL A1+A2= RENUM wavelength or "
- 2810 LOCATE LN+ 2,CO:PRINT "CALL multiple "
- 2820 COLOR 0,7
- 2830 LOCATE LN+ 3,CO:PRINT "CALL FIG.2 "
- 2840 LOCATE LN+ 4,CO:PRINT "CALL /BSAVESOUNDSOUNDSOUNDA2SOUNDSOUNDSOUNDSOUND/ "
- 2850 LOCATE LN+ 5,CO:PRINT "CALL L1 A1 "
- 2860 LOCATE LN+ 6,CO:PRINT "CALL ZVARPTRSOUNDSOUNDSOUNDSOUNDORORORSOUNDSOUNDSOUNDSOUND<0xB4!>DEFSNGSOUND Hi-Z "
- 2870 LOCATE LN+ 7,CO:PRINT "CALLTHENFNLOAD THENINSTRTHEN C1 "
- 2880 LOCATE LN+ 8,CO:PRINT "CALL CLSSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND<0xB4!> "
- 2890 LOCATE LN+ 9,CO:PRINT "CALL earth\\MOTOR\\ground "
- 2900 COLOR 7,0
- 2910 LOCATE LN+10,CO:PRINT "CALL "
- 2920 '
- 2930 CO=54
- 2940 LOCATE LN+ 1,CO:PRINT "CALL A1+A2= any random length"
- 2950 LOCATE LN+ 2,CO:PRINT "CALL "
- 2960 COLOR 0,7
- 2970 LOCATE LN+ 3,CO:PRINT "CALL FIG.3 ";
- 2980 LOCATE LN+ 4,CO:PRINT "CALL /BSAVESOUNDSOUNDSOUNDA2SOUNDSOUNDSOUNDSOUND/ ";
- 2990 LOCATE LN+ 5,CO:PRINT "CALL C1 C2 A1 ";
- 3000 LOCATE LN+ 6,CO:PRINT "CALL ZVARPTRSOUNDSOUNDUSINGSOUNDSOUNDBSAVESOUNDSOUNDUSINGSOUNDSOUND'DEFSNG- unknown ";
- 3010 LOCATE LN+ 7,CO:PRINT "CALLTHENFNLOAD OROROR Z ";
- 3020 LOCATE LN+ 8,CO:PRINT "CALL CLSSOUNDSOUNDSOUNDSOUNDSOUNDSOUND<0xB4!>L1 ";
- 3030 LOCATE LN+ 9,CO:PRINT "CALL \\MOTOR\\earth ground ";
- 3040 COLOR 7,0
- 3050 LOCATE LN+10,CO:PRINT "CALL "
- 3060 RETURN
- 3070 '
- 3080 '.....foreword
- 3090 T=8
- 3100 PRINT TAB(T);
- 3110 PRINT "The program designs a complete system including a Transmatch and"
- 3120 PRINT TAB(T);
- 3130 PRINT "calculates component values for three configurations:"
- 3140 PRINT
- 3150 PRINT TAB(T);
- 3160 PRINT "FIG.1 and FIG.2 are best for monoband antennas, requiring only one"
- 3170 PRINT TAB(T);
- 3180 PRINT "inductor (which may not need to be variable or tapped for the"
- 3190 PRINT TAB(T);
- 3200 PRINT "higher frequency bands) and one variable tuning capacitor. FIG.3 is"
- 3210 PRINT TAB(T);
- 3220 PRINT "a random-wire multi-band antenna which requires one variable or"
- 3230 PRINT TAB(T);
- 3240 PRINT "tapped inductor and two variable tuning capacitors."
- 3250 PRINT
- 3260 PRINT TAB(T);
- 3270 PRINT "The wire can be any length within the parameters shown from a short"
- 3280 PRINT TAB(T);
- 3290 PRINT "whip to a true long wire, however, due to the variable conditions"
- 3300 PRINT TAB(T);
- 3310 PRINT "noted above, the Transmatch control settings calculated by this"
- 3320 PRINT TAB(T);
- 3330 PRINT "program should be considered as approximate only."
- 3340 PRINT
- 3350 PRINT TAB(T);
- 3360 PRINT "(Ref. ARRL Electronics Data Book, 1st Edition, page 71)";
- 3370 RETURN
- 3380 '
- 3390 '.....end
- 3400 GOSUB 3440
- 3410 GOTO 220 'start
- 3420 END
- 3430 '
- 3440 'HARDCOPY
- 3450 GOSUB 3560:LOCATE 25,2:COLOR 14,6
- 3460 PRINT " Press 1 to print screen, 2 to print screen & ";
- 3470 PRINT "advance paper, or 3 to continue.";:COLOR 7,0
- 3480 Z$=INKEY$:IF Z$="3"THEN GOSUB 3560:RETURN
- 3490 IF Z$="1"OR Z$="2"THEN GOSUB 3560:GOTO 3510
- 3500 GOTO 3480
- 3510 FOR QX=1 TO 24:FOR QY=1 TO 80
- 3520 LPRINT CHR$(SCREEN(QX,QY));
- 3530 NEXT QY:NEXT QX
- 3540 IF Z$="2"THEN LPRINT CHR$(12)
- 3550 GOTO 3450
- 3560 LOCATE 25,1:PRINT STRING$(80,32);:RETURN
-